SL Tome of Knowledge
====================
  Note:  This is the Open Beta copy of Streamline 3.1.  This information is a first draft, and not 100% complete.  It is listed here for your convenience, so that you may get more familiar with how the various modules in Streamline operate, and so that you have some idea of how to configure and use them.  It will be finished for the actual release, and contain all information regarding Streamline and it's modules at that time.


Streampurge
===========
  Streampurge enhances the performance of Oblivion by reducing stuttering and lag, and smoothing out gameplay in general.  It does this by maintaining much cleaner cell buffer and video ram cache while the game is running and the player is moving from place to place.

  As a result, average FPS over a gaming session should be slightly higher, stutter from loading new areas in should be dramatically lower, and the lag generally experienced as gameplay progresses should be significantly reduced, or eliminated entirely.  Further, due to the manner and frequency in which memory is cleared, people that were unable to use higher resolution texture packs in the past may be capable of doing so now.

  Streampurge will enable itself in the default mode (Normal) which should be adequate for most people, but can be configured to run in five additional modes - both faster and slower.  The faster the module runs, the more often cell buffers & video ram will be cleared.  People with less available memory or who fill up their memory quickly are advised to try a faster mode before a slower one.

  Companion mods of all types should be fully compatible with Streampurge.  If for one reason or another your companion has "funky AI", Streamline will still function completely, but at a reduced rate of cache clearing.

  Streampurge should have -zero- negative impact on your game's performance, despite whichever mode is selected.  It is possible in rare circumstances for slight pauses to be noticed - this is due to memory being cleaned by Streampurge.  The larger the amount of memory that is cleaned, the larger the pause may be.  Even on slower machines with a lot of memory to clear, this should never pause long enough so it detracts from the playability of the game.  If this slight pausing is noticed, it means Streampurge is doing its job, and your loading times will be less wherever you are.  Typically this pausing will only occur in the heaviest of areas, where your computer loads lots of resources into memory.  If you ever need to force a purge before Streampurge is ready to do one, there is a hotkey available that enables you to do so.  The default is CTRL-Del, but this can be configured in the sl.ini file to your tastes.

  The six speeds Streampurge runs in are:

- Maximum
- High
- Performance
- Normal  (default)
- Lite
- Ultra Lite

  We recommended using the default mode first, as it is the most compatible.  If you are pushing your machine hard (large mods, texture packs, etc), try stepping up to a faster mode.  If one mode is causing too many problems for your computer, choose the next lower mode until you are happy with the results.  If you aren't getting the performance that you think you should (less stutter), try a different mode in either direction - up or down.  Every computer and install of Oblivion is different, so experiment and find out what works best for you!  Generally pushing your machine harder with more content means youll need a faster mode.  The fastest mode is only suggested when all others have been tried and fail to meet your needs.

  There may be times when you have changed cells and Streampurge would like to clear the cache, and cannot.  Generally this happens when you are near other NPCs that are busy doing things, or when you are around combat.  Fortunately Streampurge is patient and will keep trying until things calm down around you.  If it senses an abnormally long time has passed and it still cannot purge, it will wait for you to change cells once more, and immediately force a flush of the cache.  This is a safety mechanism to ensure the cache will be cleared even in high-traffic areas over prolonged periods of time.  The extremely intelligent algorithms that run ensure that memory is cleared on a regular basis only when it is safe to do so.  Streampurge notices everything going on around you - combat, artificial intelligence routines by actors, etc.  The more it notices actors nearby doing things that make it impossible to purge memory, the less often it tries - up to a maximum threshold.  The same goes for areas that are less busy - if it needs to purge it will do so more quickly, as it recognizes that you are in a relatively quiet area.  The Streamline Angel does all of this watching and event recording to make this possible, and "looks around" on a 2.5 second interval 24/7, to ensure the integrity of Streamline events.

  Streampurge will also watch for you to wait, sleep or fast travel.  When it notices this it will attempt to clean the buffers, but will not do so more than once every 30 seconds.  This protects against crashes that multiple purges from waiting, sleeping and traveling can cause.  These purging options (and many others) can be toggled on and off via the Streamline menu.

  Streampurge has an "anti-cache cache" built in.  It knows when the last purge happened, and depending on the mode selected it won't immediately ask for a new purge when the player crosses their first cell boundary in-game.  Slower modes have more tolerance for the number of cached cells and will wait longer to request a purge.  This protects against purging from "cell hopping", like repeatedly entering and exiting a shop or building.

  Due to the way Streampurge works, it will not actively purge the cell buffers when you or other actors near you are in combat.  This protects against interrupting many different types of events, among them voices, audio, artificial intelligence, etc.

  Streampurge will attempt to empty cell caches, and will almost never interrupt NPC voices or AI routines.  This is very reliable with slower modes, so don't use faster modes if you don't actually need to.  The frequency at which caches are cleared determines how many system resources Oblivion takes up: faster cache cleaning means more resources are freed, but that those resources need to be reloaded when needed again.


Streamsmooth
============
  Streamsmooth gives real-time FPS Smoothing via detail adjustments, to ensure your games visual performance needs are continually being met.  It adjusts many different variables in Oblivion, from Visual Options sliders to entries in the Oblivion.ini file.  It uses a "Virtual Level Of Detail" number termed "vLOD", that scales from 0 to 100 to set those values in real-time, dynamically (think of a gearshift with 101 gears).  It uses a proprietary mathematical formula designed specifically for this mod (which took three days alone to create and fine tune), and numbers from the sl.ini file that users can reconfigure to their needs.  Streamsmooth uses "Min desired FPS" and "Max desired FPS" numbers that you give it to try and achieve this enhanced level of FPS smoothing. The sl.ini file has tons of settings that can be altered to work directly with the system. Major groups of settings can be toggled on/off together, or individual settings can be set separately.

  The vLOD system can be accessed through the menu, and has several optional modes to operate in: Max Detail, Min Detail, Auto Detail, and fine-tuning via +/- hotkeys. You can force max detail or min detail for those times you need it: while screenshotting, etc.  See the sl.ini file for the default keys assigned to the various functions, and to change them if needed.

  Streamsmooth has built-in "spike protection", for times when you are loading up new areas, or when you spin and face a door on the way out of a building (for example). It won't instantly push the detail level to max, but instead it will gradually nudge vLOD up or down to reach its goal. The greater the difference in FPS it has to achieve, the greater the change in vLOD.

  Another optional smoothing feature is the FPS combat booster. If you want slightly higher FPS during combat, you can simply set the boost variable in the INI file a bit higher, and the smoother will keep FPS nearer to the top of your regular FPS range automatically. Say you set your FPS range to be 20-30, and the combat boost to be 0.8. During combat, the smoother will attempt to get FPS 80% of the way from 20 to 30 (right around 28). When combat ends, it will go back to normal adjustments.  If you set it above 1.0 (which is 100%), you can effectively boost FPS during combat -over- your normal range.

  There are several major categories of adjustments that Streamsmooth works with, seen in the menu as toggleable options.  Each category controls several individual settings, either sliders or Oblivion.ini entries.  The relationship between categories and settings is:

- Details:
	fSpecualrStartMax
	fSpecularLOD2
	fSpecularLOD1
	fLodDistance
	fFadeDistance
	fTalkingDistance

- Grass:
	iMinGrassSize
	fGrassEndDistance
	fGrassStartFadeDistance
	iMaxGrassTypesPerTexure
	iGrassDensityEvalSize

- Trees:
	fTreeLODMax
	fTreeLODMin
	fTreeLODExponent
	fTreeLODDefault

- Lights/Shadows
	iActorShadowCountInt
	iActorShadowCountExt
	fShadowLOD2
	fShadowLOD1
	fLightLOD2
	fLightLOD1
	iShadowFilter
	bEquippedTorchesCastShadows
	iCanopyShadowScale

- Objects
	fLODFadeOutMultActors
	fLODFadeOutMultItems
	fLODFadeOutMultObjects
	fObjectLODDefault
	fItemLODDefault
	fActorLODDefault

- Water
	bUseWaterReflectionsMisc
	bUseWaterReflectionsStatics
	bUseWaterReflectionsTrees
	bUseWaterReflectionsActors

- Terrain
	fNoLODFarDistancePct

- Clipping
	SetClipDist

  vLOD is Streamsmooths "Virtual Level of Detail" for graphic quality, and should be thought of as a gearshift with 101 gears.  The lower the gears, the less detail Streamsmooth will try to display (in an attempt to force FPS higher).  Conversely, the higher the gears the more detail it will try to display (in an attempt to use extra machine power and increase visual quality).  You can keep the default min and max at 0 and 100, or you can set caps on one or both.  By raising min vLOD, you are telling Streamsmooth "not to lower visual details past the minimum you assign".  Lowering max vLOD tells it "dont raise visual details past the maximum you assign".  Caps on vLOD can be useful to keep details at a range you find acceptable.

  How Streamsmooth uses vLOD and FPS:  when your detected FPS is within the designated acceptable range, Streamsmooth does nothing.  When it notices your FPS stray outside of the range you gave it, it starts altering vLOD.  If FPS is low, the vLOD "gearshift" is lowered to decrease details, and try to raise the FPS as a result.  If FPS is high, vLOD is raised to increase details to give better visual quality, and to try and bring FPS back down within the given range.  FPS checks are run by default five times a second (0.2s), but that may be altered to suit individual tastes in the sl.ini file.  Additionally, the speed with which vLOD responds to FPS changes (the "Sensitivity") can be altered in the sl.ini to produce faster or slower response to changing conditions.

  The anatomy of a sl.ini visual detail entry:  Each entry for visual detail in the ini has five settings:

- A toggle for enabling and disabling the setting
- A "high vLOD" number, to determine when the maximum value given is used
- A "low vLOD" number, to determine when the minimum value given is used
- A maximum value, which ties in directly to the high vLOD number
- A minimum value, which ties in directly to the low vLOD number

  When vLOD equals the high/low vLOD numbers for a setting, or goes past them (either up or down), the min/max value assigned is used.  For example:  if you set the highVLOD at 80 for a given setting, and Streamsmooth has raised vLOD past that up to 100, the max value will be used for vLOD at 80 and every value of vLOD over 80.  This can be useful for telling Streamsmooth when to set maximums or minimums for certain visual details.  Take the default setting for grass density (iMinGrassSize)  as an example.  We have told the system to stop reducing the density of grass when vLOD hits 10 - the minimum density is 180 (larger is less dense).  For any vLOD from 10 down to 0, this value will not change.  The density of grass will not change as vLOD dips lower, but it will scale all the way up to 100 vLOD as a maximum.  This system of individual caps on maximums and minimums can help you control what visual details get set to, and when.  Never set min/max vLOD numbers with the same values.


Streamsave
==========
  Streamsave can be considered an enhanced quicksave and autosave system for Oblivion, that works completely outside the normal quick/auto saves Oblivion uses.  There is a queue of save slots that can be set from 1 up to 40 via the menu or sl.ini file, and a save timer that tells Streamsave how often to perform a save.

  As saves are made they are put into the rotating queue of slots (essentially a circular list).  These saves show up in the Save and Load lists in the Oblivion menu system.  The files themselves are in the same directory as other Oblivion saves.  They get backed up every time they are overwritten, but only one backup at a time is kept per the "iSaveGameBackupCount" variable in the Oblivion.ini file.  Raising this number over 1 gives even more "layers" of backed up saves.  Be careful not to increase this too high - with a setting of 10 save slots, and a value of 3 in the Oblivion.ini for iSaveGameBackupCount, you essentially end up with 10+30 saves, each of which are between 5 and 15mb.  Thats a total of 320mb if each savegame is only 8mb in size.  We recommend sticking with the standard value of 1 in the Oblivion.ini, and simply creating more save slots for Streamsave to use.

  There are many options that allow the player to tailor Streamsave specifically to their needs:

- Configurable number of save slots (up to 40)
- Configurable save timer (from 1 minute up to 360 minutes)
- Protection against saving while in dangerous situations: low player health, in combat, in lava, while yielding, while trespassing, while swimming, etc
- Optional saving in special situations: while inside only, while idle only, after a zone (travel, door, etc), after waiting or sleeping, while sneaking, while character has a weapon out, etc
- Optional audible feedback when a save is performed
- Optional "Save Reminders" instead of actual saves
- A "Lite" version of Save Reminders that only puts a message in the top left of the screen for two seconds

  One thing I personally like to do with Streamsave, is remap the Oblivion quicksave key to something I never use (like F10). I then map the Streamsave hotkey to F5, essentially replacing Oblivion's quicksave key with Streamline's. That way my "quick" saves when using F5 are now placed in the save rotation right along with the rest of the saves automatically.


Streamview
==========
  Streamview is an automatic Field Of View (FOV) system for Oblivion.  It relies on an entry in the sl.ini file to monitor and maintain the FOV you see in-game.  For normal 4:3 monitors and LCDs, that is usually 75.  Widescreen users will want to change this to suit their needs.  Only the setting in the sl.ini is permanent, and will get loaded each time the game is started.

  You can change your FOV on-the-fly via the Streamline menu system in-game. You can also bring up the console and simply type in "set slFOV to X" where x is your desired new FOV, and the game will switch to it within seconds. As already mentioned, changes not made in the ini directly wont keep when Oblivion is shut down, so be sure the FOV you want to use most of the time is set correctly there.

  Increasing the FOV number "pulls back" your field of vision, allowing you to see more to either side and above/below you.  That comes at a cost however, as details of things in the distance get smaller and harder to pick out.  Decreasing the FOV on the other hand "zooms forward" your field of vision, allowing you to see more detail on items in the distance.  The cost of that of course, is that items to the side and above/below you disappear because your vision is zoomed in.

  Streamview is really handy for screenshots, and if you want to zoom in/out on distant details.  It also makes a great permanent FOV-change mod for people who want to use it in that respect.  Changes in the Streamline menu to FOV are made at +/- 5, from a min of 30 to a max of 200.  Changes via the console can be any integer number, and any min/max the game will accept.  The FOV setting in the ini may be any number you choose, that the game works properly with. 
